/*
 * @lc app=leetcode.cn id=435 lang=cpp
 *
 * [435] 无重叠区间
 */

// @lc code=start
class Solution
{
    static bool cmp(const vector<int> &a, const vector<int> &b)
    {
        if (a[0] == b[0])
        {
            return a[1] < b[1];
        }
        return a[0] < b[0];
    }

public:
    int eraseOverlapIntervals(vector<vector<int>> &intervals)
    {
        //无重叠区间 显然先排序
        //先按起始排序 如果相等 终止位置小的在前面
        //然后从左往后开始遍历 如果存在交集 则删除集合
        sort(intervals.begin(), intervals.end(), cmp);
        int res = 0;
        for (int i = 1; i < intervals.size(); i++)
        {
            //如果重叠
            if (intervals[i][0] < intervals[i - 1][1])
            {
                intervals[i][1] = min(intervals[i][1], intervals[i - 1][1]);
                res++;
            }
        }
        return res;
    }
};
// @lc code=end
